using MediatR;
using ProduceBasicData.Api.DTO;
using ProduceBasicData.ErrorCode;

namespace ProduceBasicData.Api.Application.Command.ProcessReport
{
    /// <summary>
    /// 获取工艺报工数量命令类
    /// </summary>
    public class GetCraftReportQuantityCommand : IRequest<ApiResult<CraftReportChartDto>>
    {
        /// <summary>
        /// 开始日期（可选）
        /// </summary>
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// 结束日期（可选）
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 工艺ID（可选，用于筛选特定工艺）
        /// </summary>
        public int? CraftId { get; set; }

        /// <summary>
        /// 报工状态（可选，1已提交,2待审批,3已完成）
        /// </summary>
        public int? ReportStatus { get; set; }

        /// <summary>
        /// 排序方式（1按数量升序，2按数量降序，3按工艺名称）
        /// </summary>
        public int SortType { get; set; } = 2; // 默认按数量降序

        /// <summary>
        /// 是否只显示有报工记录的工艺
        /// </summary>
        public bool OnlyWithReports { get; set; } = true;
    }
}
